Distributed content delivery systems are used for delivering contents to clients. As with any other system, one or more of the servers of the distributed system may fail. Commonly used methods for dealing with server fault, approximately without interfering the content delivery process, use replicas or redundancy encoding.
Commonly used Content Delivery Networks (CDN) either cache content at the edges of the Internet, or use dedicated communication lines to transport content from aggregation centers to locations near end users. These CDNs require large amounts of storage to cache content, or expensive dedicated communication lines to connect content aggregation centers to locations near end users. Commonly used techniques of synchronizing multiple servers for delivering distributed content comprise inter-server communication. These techniques are complex to realize, and often do not optimally utilize resources such as communication bandwidth and storage space.